package Model

import (
	"database/sql"
	"go-study/config"
	"time"
)

// 数据结构定义
type TestNote struct {
	SysOrgCode string    `json:"sysOrgCode"`
	Name       string    `json:"name"`
	Age        int       `json:"age"`
	Sex        string    `json:"sex"`
	Birthday   time.Time `json:"birthday"`
	Contents   string    `json:"contents"`
}

type TestNoteResponse struct {
	Code int        `json:"code"`
	Msg  string     `json:"msg"`
	Data []TestNote `json:"data"`
}

// 数据库操作方法
func GetTestNoteList() ([]TestNote, error) {
	db := config.DB // 使用全局数据库连接

	query := `SELECT sys_org_code, name, age, sex, birthday, contents FROM test_note`
	rows, err := db.Query(query)
	if err != nil {
		return nil, err
	}
	defer rows.Close()

	var notes []TestNote
	for rows.Next() {
		var note TestNote
		var birthday sql.NullTime
		err := rows.Scan(
			&note.SysOrgCode,
			&note.Name,
			&note.Age,
			&note.Sex,
			&birthday,
			&note.Contents,
		)
		if err != nil {
			return nil, err
		}

		if birthday.Valid {
			note.Birthday = birthday.Time
		}

		notes = append(notes, note)
	}

	return notes, nil
}

// 可以添加其他数据库操作方法
// 例如：CreateTestNote, UpdateTestNote, DeleteTestNote 等
